svcs
This library aims to simplify building queue based services in nodejs using AMQP.
It simplifies getting started and provides some out of the box monitoring / admin
for these services.
Status
Don't use it in production, early adopters and hackers are welcome, the API is still in a state of flux as we work on
evolving some of the core features.
API
To build a new service we just create the service and pass in our
handler(s).
var svcs = require('svcs');
var container = svcs();
var amqpUrl = process.env.AMQP_URL || config.amqp.url;
container.set('amqpUrl', amqpUrl);
function onErr(err) {
console.warn('error processing message', err);
}
container.route('$gw.:gatewayId.events', {queue: 'gw_events', errorHandler: onErr}, function handler(msg){
var gatewayId = msg.params.gatewayId;
});
Middleware
There are a couple of modules which can be added to the container.
JSON
This is a simple JSON decoder which will convert the payload of the incoming AMQP messages to JSON when the messages
contentType
is set to application/json
.
container.use(svcs.json());
Routing Statistics
This will send per routingKey
statistics to a statsd server using the increment
function.
container.use(svcs.stats());
TODO
- Add locals to enable connection pools to be tied in and available to the msg, this probably should be done by a
middleware module later.
- Need to rework configuration and decide where the defaults should live.
- Need to review jobs as the api is pretty average at the moment.
- More testing..
License
Copyright (c) 2013 Mark Wolfe released under the MIT license.